classDiagram
    class Target {
        <<interface>>
        +request(): void
    }
    class Adaptee {
        +specificRequest(): void
    }
    class Adapter {
        -adaptee: Adaptee
        +request(): void
    }
    class Client {
        -adapter: Adapter
        +doSomething(): void
    }

    Target <|.. Adapter
    Adaptee ..> Adapter : Adapts
    Client --> Adapter : Uses
